/* --- 1. THEME & FONT VARIABLES --- */
/* These variables are used to control colors, fonts, and sizes */
:root {
    /* Colors */
    --color-dark-blue: #0f204b;
    --color-sea-blue: #003591;
    --color-sky-blue: #99d9f0;
    --color-white: #ffffff;
    --color-black: #1a1a19;
    --color-border-sandstone: #cccbc9;
    --color-border-sandstone-30: #4f4d4a;
    --color-cyan: #009fda;

    /* Themes */
    --theme-primary: var(--color-dark-blue);
    --theme-secondary: var(--color-sea-blue);
    --theme-tertiary: var(--color-sky-blue);
    --theme-neutral-light: var(--color-white);
    --theme-border-light: var(--color-border-sandstone);
    --theme-border-dark: var(--color-border-sandstone-30);
    --theme-info: var(--color-cyan);
    --theme-text: var(--color-black);
    --theme-link: var(--theme-secondary);

    /* Fonts */
    --font-weight-regular: 350;
    --font-weight-demi: 549;
    --font-weight--medium: 450;
    --font-body: "Gantari", Helvetica, Arial, system-ui, sans-serif;

    /* Font Sizes */
    --font-size--small: 1rem;
    --font-size--base: 1.125rem;
    --font-size--medium: 1.25rem;
    --font-size--xlarge: 1.75rem;
    --font-size--xsmall: .875em;


    /* Line Heights */
    --line-height--small: 1.375rem;
    --line-height--base: 1.625rem;
    --line-height--xlarge: 2.375rem;
    --line-height--xsmall: 1.25em;

    /* Grid Layout */
    --listgrid-gap: 1rem;
}

/* Responsive Font Sizes */
@media only screen and (min-width: 1024px) {
    :root {
        --font-size--xlarge: 2.25rem;
        --line-height--xlarge: 3.375rem;
    }
}

/* --- 2. DNV ICON FONT DEFINITION --- */
/*@font-face {
    font-family: dnvgl;
    font-weight: 400;
    font-style: normal;
    src: url(https://www.dnv.com/assets/fonts/icomoon/icomoon.eot?qy5sxl) format("embedded-opentype"),
         url(https://www.dnv.com/assets/fonts/icomoon/icomoon.woff2) format("woff2"),
         url(https://www.dnv.com/assets/fonts/icomoon/icomoon.woff) format("woff"),
         url(https://www.dnv.com/assets/fonts/icomoon/icomoon.ttf) format("truetype"),
         url(https://www.dnv.com/assets/fonts/icomoon/icomoon.svg) format("svg");
}*/

/* Base class to apply the icon font */
.icon-dnvgl {
    font-family: dnvgl !important;
    /* !important to override Bootstrap icons */
    font-style: normal;
}

/* Specific icon classes */
.icon-briefcase:before {
    content: "";
    position: relative;
    top: .125em;
    margin-right: 6px;
}

.icon-customer-portal:before {
    content: "";
    position: relative;
    top: .125em;
    margin-right: 6px;
}

.icon-worldmap:before {
    content: "";
    position: relative;
    top: .125em;
    margin-right: 6px;
}


/* Form section transitions */
.form-section {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.5s ease-in-out, opacity 0.5s ease-in-out;
    margin: 0;
    padding: 0;
}

.font-xsmall {
    font-size: var(--font-size--xsmall);
    line-height: var(--line-height--xsmall);
}

.form-section.visible {
    max-height: 2000px;
    /* Adjust based on content */
    opacity: 1;
    margin-bottom: 1.5rem;
    padding-top: 1.5rem;
}

/* --- 3. SCOPED LAYOUT STYLES --- */
/* Scoped reset */
.info-list-block *,
.info-list-block *:before,
.info-list-block *:after {
    box-sizing: border-box;
    /* margin and padding are reset on the specific elements */
}

.info-list-block h2,
.info-list-block h3,
.info-list-block p,
.info-list-block div,
.info-list-block article,
.info-list-block section {
    margin: 0;
    padding: 0;
    font-family: var(--font-body);
    /* Ensure font is inherited */
}

.info-list-block a {
    color: inherit;
    text-decoration: inherit;
}

/* Grid system for the list */
.info-list-block .listgrid {
    display: grid;
    column-gap: var(--listgrid-gap-column, var(--listgrid-gap));
    row-gap: var(--listgrid-gap-row, var(--listgrid-gap));
    grid-auto-flow: dense;
    grid-template-columns: repeat(var(--column-count, 1), 1fr);
    padding: 0;
    list-style: none;
    padding-block-end: var(--listgrid-gap);
}

@media only screen and (min-width: 768px) {
    .info-list-block .listgrid--two {
        --column-count: 2;
    }

    .info-list-block .listgrid--three {
        --column-count: 3;
    }
}

.info-list-block .listgrid__item {
    position: relative;
    container-type: inline-size;
    container-name: item;
    margin: 0;
    height: 100%;
    /* Added to make cards equal height */
}

/* Fallback for single column on small screens */
@container (width < 320px) {
    .info-list-block .listgrid {
        display: flex;
        flex-direction: column;
        gap: var(--listgrid-gap, 1rem);
    }
}


/* --- 4. SCOPED COMPONENT STYLES --- */

.info-list-block {
    padding-block-start: 1rem;
    font-family: var(--font-body);
}

.info-list-block .info-list-block__title {
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    /* Reduced from 2rem to match Bootstrap mb-4 */
    font-size: var(--font-size--xlarge);
    line-height: var(--line-height--xlarge);
    color: var(--theme-primary);
    font-weight: var(--font-weight--medium);
}

/* Override your h2 style ONLY within this block */
.info-list-block h2.fw-bold {
    font-size: var(--font-size--xlarge) !important;
    font-weight: var(--font-weight--medium) !important;
    color: var(--theme-primary) !important;
    margin-bottom: 0.5rem !important;
}


/* Individual list item */
.info-list-block .info-list-block-item {
    --_circleSize: 2.5rem;
    --_iconFontsize: 1.5rem;
    --_iconBackground: var(--theme-tertiary);
    --_iconColor: var(--theme-secondary);
    --_borderColor: var(--theme-border-light);

    height: 100%;
    display: flex;
    align-items: initial;
    position: relative;
    padding: 1rem;
    border: 1px solid var(--_borderColor);
    transition: border .2s ease-in-out;
    background-color: var(--theme-neutral-light);
}

.info-list-block .info-list-block-item__link:before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
}

/* The circular icon wrapper */
.info-list-block .info-list-block-item__icon {
    width: var(--_circleSize);
    height: var(--_circleSize);
    font-size: var(--_iconFontsize);
    background-color: var(--_iconBackground);
    color: var(--_iconColor);
    font-weight: var(--font-weight-regular);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    pointer-events: none;
    flex-shrink: 0;
    /* Added */
}

.info-list-block .info-list-block-item__icon i:before {
    top: 0 !important;
    margin-right: 0 !important;
}

.info-list-block .info-list-block-item__icon--inline {
    display: none;
    flex-shrink: 0;
}

.info-list-block .info-list-block-item__content {
    flex-grow: 1;
    display: flex;
    gap: 1rem;
}

.info-list-block .info-list-block-item .info-list-block-item__text {
    font-size: .875em;
    line-height: 1.25em;
    margin-bottom: 0;
    font-weight: 400;
    color: rgba(33,37,41,0.75);
    font-family: "Gantari", Helvetica, Arial, system-ui, sans-serif !important;
    font-kerning: none;
}

@container (width < 420px) {
    .info-list-block .info-list-block-item .info-list-block-item__text {
        /*display: none;*/
    }
}

.info-list-block .info-list-block-item--hasText {
    grid-column: span 2;
}

@media (max-width: 767.98px) {
    .info-list-block .info-list-block-item--hasText {
        grid-column: span 1;
        /* Force to 1 column on mobile */
    }
}


.info-list-block .info-list-block-item--default {
    gap: 2rem;
}

.info-list-block .info-list-block-item--default:hover,
.info-list-block .info-list-block-item--default:focus-within {
    --_borderColor: var(--theme-border-dark);
}

@container (width > 420px) {
    .info-list-block .info-list-block-item--default {
        --_circleSize: 4.375rem;
        --_iconFontsize: 1.875rem;
    }
}

.info-list-block .info-list-block-item__title {
    margin-block-end: 0;
    font-size: .875em;
    line-height: 1.25em;
    color: #1F2327;
    font-weight: var(--font-weight-demi);
}

.info-list-block .h4 {
    font-size: var(--font-size--medium);
    line-height: var(--line-height--base);
    color: var(--theme-primary);
    font-weight: var(--font-weight-demi);
}